The invention relates to a communication system comprising at least one controller station and at least one controlled station; the stations being interconnected via a communication network; functionality of each controlled station being associated with a respective abstract representation, referred to as AR, which provides an interface for software elements in the system to control functionality of the controlled station by means of messages exchanged with the AR via the communication network.
The invention further relates to a controller station and a controlling station for use in the communication system.
The invention relates in particular to a multimedia consumer electronics system.
The consumer electronics industry is moving from mainly analogue operated devices to digitally operated devices. Audio has become digital with the arrival of digital storage media, such as compact disks, and digital broadcasting techniques, such as DAB. Also video is rapidly becoming digital. An all-digital multimedia system with digital audio and digital video opens up new possibilities to the consumer, owing to impressive digital processing and storage capabilities that are becoming available at affordable prices. Moreover, digital communication networks are becoming more powerful at reduced cost.
EP 0,406,486 describes the D2B communication system for consumer electronic devices enabling automatic control of an electronic device via the D2B bus. In this system, a station may act as a controller station, controlling one or more of the other stations, acting as controlled station(s). A controlled station makes its local functionality available in the form of a set of functions which can be accessed by transferring messages via the D2B bus. The set of functionality can be seen as an abstract representation of the actual underlying functionality which is provided by the hardware and/or software of the controlled station. The representation is abstract in the sense that no strict one-to-one relationship between the externally offered functions and the internal implementation is required. Typically, the representation is standardized whereas the actual implementation is vendor or even model specific. Consequently, the controlled station maps the abstract representation (AR) into internal control mechanisms and controls the underlying hardware/software accordingly (e.g. using an internal bus, such as I2C, to control hardware components). Such a mapping and control is usually performed in software. This also covers the functionality required to map the abstract representation to the concrete representation of the underlying hardware/software of the station.
The AR can be controlled using a messaging mechanism. Command messages are defined for each function instructing the controlled station to perform a defined task. Request messages allow information to be retrieved from the controlled station with respect to the execution of a function, such as the state of the station. Event messages enable the controlled station to inform the controlling station of events, such as state changes, which have occurred in the controlled station.
In the controlling station, the task of controlling functionality of another station is assigned to the so-called Audio/Video Controller (AV/C). The AV/C acts independently of any of the other controlling stations. Typically, the AV/C starts a control sequence, usually referred to as feature or application, in reaction to a trigger from a user (e.g. a user has pressed a button on a remote control) or an event which has occurred in the system. A typical example of an application executed by the AV/C is the automatic play feature. For this feature, in response to the user activating the playback function of a VCR (e.g. pressing a play button or inserting tape), the AV/C instructs the VCR deck to play the tape, instructs the VCR to make the A/V signal originating from the tape available to the TV, and instructs the TV to provide the signal from the VCR to the monitor. It will be appreciated that for this example the controlling AV/C is preferably, although not strictly required, located in either the TV or VCR to reduce the number of command messages. Several AV/Cs may be present in the stations. A station may over time or even simultaneously act as a controlling station or as a controlled station.
In the D2B System, a correspondence was required between on the one hand the feature executed by an AV/C and on the other hand the functions in the controlled station(s). This correspondence has hindered introduction of the system. Typically, a user already possessed an A/V system and replaced or added devices on an individual basis. Obtaining one device which was able to act as a D2B controlling station and/or controlled station did not add functionality to the system, since no partner station was available yet. Only once the user has obtained suitable partner station(s) automatic control functionality provided by the D2B system became available. Moreover, the functionality of the controlling station and the controlled station was static. As an example, the functionality made available by a VCR to the rest of the system was mainly decided by features of existing AV/Cs or AV/Cs under development at the moment of development of the VCR. If at a later moment an AV/C with a new feature was introduced requiring other functions of the VCR, this new AV/C could not co-operate with the existing D2B VCR, even if the hardware of the existing VCR in principle could provide the functionality. Consequently, migration of functionality was cumbersome.
It is an object of the invention to provide a communication system of the kind set forth which is more flexible with respect to the functionality of a controlled station. It is a further object of the invention that functionality of the controlled station can be managed in a user friendly manner.
To meet the object of the invention, the controller station comprises control means for executing at least one AR associated with a respective controlled station; the communication system comprises means for storing for at least one of the controlled stations at least one associated preference indicator; the preference indicator enabling to determine by which one(s) of the controller station(s) the AR of the associated controlled station should preferably be executed and/or which AR is to be executed; the communication system comprises AR distribution means for obtaining the preference indicator associated with a respective controlled station and, in dependence on the obtained preference indicator, determining which controller station should execute the AR of the respective controlled station and assigning the AR to the controller station; and the controller station comprises AR allocation means for allocating an assigned AR to the control means of the controller station.
According to the invention, the abstract representation of a controlled station can be executed on a different station, referred to as the controller station. The communication between the AR in the controller station and the actual hardware/software in the controlled station may be performed in any way. This may include any non-standard, proprietary mechanism. In this way a controlled station which itself is not able to provide the desired AR to enable other stations to control it can still be part of the system, albeit controlled indirectly via the controller station. Whereas in the D2B systems only two parties where involved in communication (namely the feature/application in an AV/C of the controller station and the functionality in the controlled station), here three parties are involved: a feature/application, an AR in a controller station and the controlled station. The feature/application may be located in any of the stations of the system which are capable of issuing control messages to the AR in the controller station. The feature/application may also be located in the controller station itself.
A further advantage of the new architecture is that the functionality provided by the AR of a controlled station can be adjusted or upgraded. As an example, if initially a user had purchased a VCR with a basic AR and a TV with a corresponding basic feature using the basic VCR functionality, according to the invention the user can replace the TV with a new model offering an enhanced feature (although not required) and an enhanced AR of the VCR, where the VCR AR in the TV communicates to the VCR in a proprietary manner (at least for the added functionality). Now not only the new feature in the TV can use the enhanced VCR functionality, but a feature located anywhere in the system can use the enhanced functionality by accessing the VCR AR located in the TV.
To manage allocating ARs to controller stations, according to the invention, preference indicator(s) are used providing information on which controller station (or which controller stations) the AR for a particular controlled station should be executed. This is a simple and effective way for ensuring that in a plug-and-play like manner the systems can be installed automatically and the system operates in a way desired by the user. Using preferences, the user can, for instance, ensure that controller stations located near a particular controlled station are given preference in executing the AR of the controlled station. In this way problems in communication between the controller station and the controlled station are reduced (e.g. less chance of cables being disrupted or interference in the communication). Furthermore, if the communication between the controller station and the controlled station is based on a different physical communication medium the length of any cabling, which may be required, is reduced. Moreover, the user can ensure that stations which in the system more or less belong together are xe2x80x98partneredxe2x80x99 in this way, simplifying the communication and execution of features. For example, if in a given system the TV executes the AR of the VCR it is preferred that the living room TV executes the AR of the living room VCR, whereas the bedroom TV executes the AR of the bedroom VCR.
The preference may be directly determined by a user of the system. Alternatively, the preference indicator may have been set to a default by the manufacturer of the station or be set by an application. Advantageously, the system learns from the particular use made of the system (e.g. the system may learn that the living room TV and VCR are frequently partnered in use) and sets the preferences accordingly, so that for any future installation and reassignment of ARs the newly learned preferences are taken into consideration.
The AR distribution means may be located in a central station, or be present in some or all of the controller stations.
In an embodiment according to the invention, the communication system comprises means for storing for each station an indication of a vendor and/or manufacturer of the respective station; the preference indicator associated with a controlled station indicating whether or not it is preferred to execute the AR of the controlled station by control means of a same vendor and/or manufacturer. In this way it can be ensured that same-make products, which tend to be designed to optimally co-operate, can also operate optimally in the larger system and at the same time make the combined functionality available to the rest of the system.
In a further embodiment according to the invention, the preference indicator associated with a controlled station indicates a specific controller station on which it is preferred to execute the AR of the controlled station. In this way, a controller station which appears suitable (e.g. based on location in the system) or has proven to operate satisfactory (e.g. offering a nice user interface, providing good performance, etc.) can be assigned to execute the AR of the controlled station. The preference indicator may take any form, such as a network unique identifier of the controller station or even a globally unique communication address.
In a further embodiment according to the invention, the controller station stores at least one AR for representing a specific model of a controlled station, or a generic AR for representing a range of models or types of controlled stations. In this way, the controller station already comes with (or at a later stage was provided with) ARs for controlled stations. For instance, a TV may be supplied with ARs for all own make VCRs and DVD players.
In a further embodiment according to the invention, the controlled station is associated with storage means for storing the AR associated with the controlled station; the AR allocation means being operative to obtain an AR associated with a controlled station from the storage means associated with the controlled station. The storage means may take any suitable form, such as a ROM in the controlled station, a harddisk or optical storage medium located somewhere else in the system or even a storage located outside the system, such as a reference to an location on an Internet server (using a so-called URL specification). The association of the controlled station with the storage means may be located in the controlled station, but may also be stored in a central station in the system or in one or more of the controller stations. The controller station is able to download the indicated AR. This may be via proprietary local communication means, via the network of the system or using a wide area network, such as Internet. The AR must be executable by the controller station. Preferably, the AR is provided as code compiled for a virtual machine, e.g. using Java bytecode. In this way, not only a compact coding but also platform independence can be achieved.
In a further embodiment according to the invention, the preference indicator associated with a controlled station indicates a storage means local to the controlled station and/or a remote storage means for storing the AR; the AR allocation means being operative to obtain an AR associated with a controlled station from a storage means indicated by a preference indicator associated with the controlled station. In this way, an AR may be supplied as standard with a controlled station (e.g. stored in ROM). Alternatively or additionally, an AR may be available from storage outside the station, for instance in a controller station, in a central station (e.g. the harddisk of a PC), or even via a wide area network such as Internet (indicated by a URL). The user or another party may update the preference and as such is able to indicate, for instance, the most recent AR for the controlled station or the AR which performed best (e.g. had no or least number of bugs or responded the fastest).
In a further embodiment according to the invention, the AR allocation means is operative to give priority to obtaining the AR from a remote storage means. In this way, the AR which was supplied as standard with the controlled station (and probably is not a recent version) is given less preference than ARs available from a different storage location. Advantageously, also data such as release date or version number of the AR is taken into consideration to ensure that the latest version of the AR is preferably used.
In a further embodiment according to the invention, the communication system comprises a plurality of controller stations; each controller station comprises; the AR distribution means; and leader selection means for nominating a single one of the controller stations as a leading controller station; the AR distribution means being operative to, if located in a nominated leading controller station, control the AR allocation means in each of the other controller stations in order to ensure that for each controlled station at most once the associated AR is allocated to a control means of one of the controller stations.
By ensuring that for each controlled station at most one AR is active, conflicts in controlling the controlled station are avoided. Since in principle many stations may be able to act as controller station, complex synchronization and management issues are avoided by assigning one of the controller stations as leading. A simple way of selecting the leader is achieved by each controller station individually deciding whether or not it is the initial leader.
In a further embodiment, the communication system comprises means for storing for each respective one of the controller stations an associated unique identifier; each leader selection means being operative to obtain the unique identifiers of all controller stations and determining, based on the identifiers, whether its local controller station is the leading controller station or not.
Using the unique identifiers, each station can simply determine whether it is the leader or not. The decision may, for instance, be based on determining the highest or lowest identifier. Also, other algorithms may be used (e.g. transforming the identifier. in a smaller number using a hash function and deciding on this number). Preferably for the unique identifiers the same identifiers are used as used for identifying a station with respect to the network, such as a network address.
In a further embodiment according to the invention, the unique identifier comprises at least a lower portion with least significant bits of the identifier and a higher portion; the higher portion comprising a vendor and/or manufacturer identification; the leader selection means being operative to perform the determination by comparing a value derived from the identifier associated with its own controller station with values derived from the identifiers associated with other controller stations; each of the values substantially being formed by bit reversing the corresponding identifier. In order to avoid that always or frequently a station of a same vendor acts as the leading station (which would occur if a simple decision mechanism was used comparing the values of the identifiers), the lowest order bits are given much weight in determining the leader. The lower order bits are usually determined sequentially and independently by each manufacturer, resulting in a simple way of achieving some randomness in choosing the leader. It will be appreciated that in this way, advantageously, for one fixed system always the same leader is selected. This may increase consistency in allocating ARs to controller stations, particularly if based on the preferences or other information for a controlled station a choice has to be made between equally suitable controller stations, and as such consistency in the operation of the system.
In a further embodiment according to the invention, the communication system comprises means for storing for each respective one of the controller stations an associated capability indicator; the capability indicator indicating a suitability of the associated controller station to act as the leading controller station; the leader selection means being operative to, if located in the (initial) leading controlling station:
obtain the capability indicators associated with each of the controllers stations;
determine which of the controller stations is a most capable one; and
nominating a most capable station as the leading controlling station.
By using capability indicators, the efficient but rather indiscriminate first selection of a leader is refined in a simple manner. Instead or all controller station(s) having to collect and decide upon the capabilities of all controller stations, this operation is only performed by one station (the initial leader), followed by handing over the responsibility to another controller station if this one turns out to be most capable in deciding where the ARs should be executed.
In a further embodiment according to the invention, the capability indicator indicates whether or not the associated controller station is capable of downloading an AR from a storage means located outside the controller station; the leader selection means ranking a controller station with a downloading capability as more capable than a controller station without a downloading capability. In this way a controller station with an outward view (e.g. capable of accessing Internet) and, therefore, better able to decide whether or not suitable new ARs are available is given preference in assigning the ARs. In this way it is avoided that a less capable leader would have to access the, for this station unknown, ARs via the more capable station.
A controlled station according to the invention comprises means for storing at least one preference indicator; the preference indicator indicating a preference for execution of the AR associated with the controlled station by a control means of selected controller station(s). In this way a simple association is achieved between the controlled station and the preference indicator. If the controlled station is not accessible via the main network, but via some other network (e.g. a proprietary network, or using different protocols operating over the same network), the preference indicator may also be stored in one or more other stations, such as a central station or controller station(s). In particular, the leading controller station may acquire and use the preference indicators for all controlled stations to select the desired ARs and/or assign the ARs to the most suitable/preferred controller station. This relieves the other controller stations from having to collect much data and decide on it.